Make GtkTreeView explicitly focus the first cell in the first column when grabbing...
authorTristan Van Berkom <tristan.van.berkom@gmail.com>
Fri, 10 Dec 2010 07:22:06 +0000 (16:22 +0900)
committerKristian Rietveld <kris@gtk.org>
Sun, 12 Dec 2010 16:21:28 +0000 (17:21 +0100)
When focus is initially grabbed and there is no focus column, when selecting
the first column for focus, further explicitly focus into the first cell
using gtk_cell_area_focus().

gtk/gtktreeview.c

index 95550fe14386101d894753598030b1ff818445e0..0eedbad9d202d99590faad8a45ac4c3921ba6fa9 100644 (file)
@@ -10081,7 +10081,16 @@ gtk_tree_view_focus_to_cursor (GtkTreeView *tree_view)
            {
              if (gtk_tree_view_column_get_visible (GTK_TREE_VIEW_COLUMN (list->data)))
                {
+                 GtkCellArea *cell_area;
+
                  tree_view->priv->focus_column = GTK_TREE_VIEW_COLUMN (list->data);
+
+                 /* This happens when the treeview initially grabs focus and there
+                  * is no column in focus, here we explicitly focus into the first cell */
+                 cell_area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (tree_view->priv->focus_column));
+                 if (!gtk_cell_area_get_focus_cell (cell_area))
+                   gtk_cell_area_focus (cell_area, GTK_DIR_RIGHT);
+
                  break;
                }
            }